#!/usr/bin/env node

/**
 * 自动更新脚本
 * 整合 CMS 数据同步、构建和部署流程
 */

import { execSync } from 'node:child_process'
import { resolve, dirname } from 'node:path'
import { fileURLToPath } from 'node:url'

const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)
const rootDir = resolve(__dirname, '..')

console.log('🚀 开始自动更新流程...\n')
console.log('时间:', new Date().toLocaleString('zh-CN'), '\n')

try {
  // 1. 同步 CMS 数据
  console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
  console.log('步骤 1/3: 同步 CMS 数据')
  console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
  execSync('node scripts/cms-sync.js', {
    cwd: rootDir,
    stdio: 'inherit',
    env: { ...process.env, PATH: process.env.PATH }
  })

  // 2. 构建项目
  console.log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
  console.log('步骤 2/3: 构建项目')
  console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
  execSync('pnpm build', {
    cwd: rootDir,
    stdio: 'inherit',
    env: { ...process.env, PATH: process.env.PATH }
  })

  // 3. 部署（如果需要）
  if (process.env.AUTO_DEPLOY === 'true') {
    console.log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
    console.log('步骤 3/3: 自动部署')
    console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
    
    if (process.env.DEPLOY_SCRIPT) {
      execSync(process.env.DEPLOY_SCRIPT, {
        cwd: rootDir,
        stdio: 'inherit',
        env: { ...process.env, PATH: process.env.PATH }
      })
    } else {
      // 默认使用 deploy.sh
      execSync('bash scripts/deploy.sh', {
        cwd: rootDir,
        stdio: 'inherit',
        env: { ...process.env, PATH: process.env.PATH }
      })
    }
  } else {
    console.log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
    console.log('步骤 3/3: 跳过部署 (AUTO_DEPLOY=false)')
    console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━')
  }

  console.log('\n✅ 自动更新完成！')
  console.log('时间:', new Date().toLocaleString('zh-CN'))
} catch (error) {
  console.error('\n❌ 自动更新失败:', error.message)
  process.exit(1)
}

